home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / COMMUNIC / 1572C.ZIP / PCTALK.ZIP / BBS-TALK.MRG < prev    next >
Text File  |  1980-01-01  |  33KB  |  575 lines

  1. 1 '**** Will run under Multi-Link version 2.07 *************
  2. 3 '
  3. 5 '
  4. 6 '
  5. 7 '
  6. 8 '
  7. 10 '
  8. 11 '
  9. 12 '
  10. 13 '
  11. 14 '
  12. 15 '
  13. 16 '
  14. 17 '
  15. 18 '
  16. 19 '
  17. 20 '
  18. 21 '
  19. 22 '
  20. 23 '
  21. 24 '
  22. 26 '
  23. 52 '
  24. 54 '
  25. 56 '
  26. 58 '
  27. 60 '
  28. 62 '
  29. 64 '
  30. 66 '
  31. 68 '
  32. 70 '
  33. 72 '
  34. 74 '
  35. 76 '
  36. 78 '
  37. 80 '
  38. 111 CLS:GOSUB 65000:PRINT
  39. 115 I=0:P=0:A$="":RC=0:PR=0:LF$="":BS$="":NS=0:DIM S$(3):DIM R$(3):SET=0:PSE=0:XF$="":XN$="":HLT=0:X$="":Y$="":Z$="":B$="":C$="":J=0:M=0
  40. 116 SP=0:CLIN$=STRING$(79,32) 
  41. 117 IB=0
  42. 120 FLN!=0:CNT!=0:SD=32767
  43. 125 DIM ALT$(10):DIM K$(40):DIM F2BUF$(5)
  44. 126 DPSE=0
  45. 130 FOR I=1 TO 10:KEY I,"":NEXT
  46. 170 CLOSE #1:OPEN "LDAPPEND.DAT" FOR INPUT AS #1:INPUT #1,APPEND1$:INPUT #1,APPEND2$:CLOSE #1
  47. 200 'Modified by Dorn W. Stickle - Voice 214-349-6492 - 9694 Forest Lane Suite 138 - Dallas, Texas 75243
  48. 210 DFNUM=29:DIM DP$(29):DIM D$(29):DIM DT$(29)
  49. 215 CLOSE #1:OPEN FFIL$ FOR INPUT AS #1
  50. 220 INPUT #1,Q$:IF Q$<>IFIL$ THEN 245
  51. 225 FOR I=1 TO DFNUM:INPUT #1,DP$(I),D$(I):NEXT
  52. 230 'Modified for 450 Baud by Dorn W. Stickle - Voice 214-349-6492
  53. 235 INPUT #1,Q$:IF Q$<>IFIL$ THEN 245
  54. 240 GOSUB 5600:GOTO 311
  55. 245 BEEP:PRINT"*** Re-initializing Default File ***":CLOSE #1:KILL FFIL$:GOTO 5400
  56. 250 GOTO 311
  57. 310 LOCATE 25,1:PRINT"Hit any key to continue ...";
  58. 311 I=1:LOCATE ,,0:P=0
  59. 315 EVWAIT!=1:GOSUB 40800:P=P+1:
  60. 316 BGI=BG:FGI=FG:IFLAG=0:BFLAG=0:ESC=0:C$=""
  61. 340 FOR I=1 TO 5:READ A$:PRINT TAB(39) VL$;A$;SPACE$(38-LEN(A$));VL$:NEXT 
  62. 341 PRINT TAB(39);VL$;STRING$(38,196);VL$
  63. 343 FOR I=1 TO 8:READ A$:PRINT TAB(39) VL$;A$;SPACE$(38-LEN(A$));VL$:NEXT
  64. 360 DATA"        COLOR - MUSIC - WINDOWS
  65. 361 DATA"
  66. 376 DATA"       Multiple modifications by
  67. 377 DATA"         many, many people and
  68. 378 DATA"       merges made compatible by
  69. 379 DATA"            Dorn W. Stickle
  70. 380 DATA"             214-349-6492
  71. 381 DATA" Press: <Home> for command summary
  72. 384 DATA"        <Alt>-A for I.B.M.
  73. 385 DATA"                3101 Operation
  74. 390 DATA"        <Alt>-E if you can't see
  75. 391 DATA"               your keyboard input
  76. 392 DATA"        <Ctr>-Home for Split
  77. 393 DATA"              Screen Operation
  78. 395 DATA"        <Alt>-P for 450 Baud change
  79. 405 CLOSE #2:OPEN KFIL$ AS #2:FIELD #2,126 AS K$,2 AS L$
  80. 420 NEXT:CLOSE #2:
  81. 425 CLOSE #1:OPEN COMM$ AS #1:PRINT #1,MODMINIT$
  82. 430 ROW=1:COL=1:GOSUB 2820:LOCATE 1,1,1:PRINT GO$:PLAY "MBL32N35N38L16N32"
  83. 517 IF TMP$="" AND SP THEN XPOS=1
  84. 555 IF SP THEN 11010 
  85. 558 PRINT #1,B$;
  86. 605 IF LOF(1)<128 THEN GOTO 606 ELSE GOTO 610
  87. 606 PSE=-1:PRINT #1,XF$;
  88. 612 IF SP THEN LOCATE ROW,COL,0
  89. 625 P=INSTR(A$,S$(I)):IF P=0 THEN 628 ELSE A$=LEFT$(A$,P-1)+R$(I)+                  RIGHT$(A$,LEN(A$)-P):GOTO 625
  90. 628 P=INSTR(A$,CHR$(0)):IF P=0 THEN 630 ELSE A$=LEFT$(A$,P-1)+                      RIGHT$(A$,LEN(A$)-P):GOTO 625
  91. 630 NEXT 
  92. 635 IF RC THEN PRINT #2,A$;
  93. 636 IF IB THEN 13030
  94. 637 X = LEN(A$):P=INSTR(A$,LF$):IF P=0 THEN 638 ELSE A$=LEFT$(A$,P-1)+RIGHT$(A$,X-P):GOTO 637
  95. 638 FOR I = 1 TO X:Z$=MID$(A$,I,1)
  96. 639 IF (Z$=CHR$(127)) THEN 655
  97. 640 IF ASC(Z$) = 27 THEN ESC=1
  98. 641 IF Z$=BS$ THEN GOSUB 2650:GOTO 655
  99. 645 IF ESC=1 THEN C$=C$+Z$ ELSE GOTO 650
  100. 646 IF LEN(C$)>1 THEN FF = INSTR("fmJ"+CHR$(14)+CHR$(93)+CHR$(124)+CHR$(91)+CHR$(27),Z$) ELSE 655
  101. 647 IF FF=0 THEN GOTO 655 ELSE GOSUB 12000:ESC=0:C$="":GOTO 655
  102. 650 PRINT Z$;
  103. 655 NEXT I
  104. 660 IF SP THEN ROW=CSRLIN:COL=POS(0):LOCATE 25,XPOS,1 
  105. 661 IF PR THEN PR$=PR$+A$:GOSUB 800 
  106. 720 IF PSE THEN PSE=0:PRINT #1,XN$;
  107. 810 P=INSTR(PR$,CR$):IF P=0 THEN 815 ELSE PRINT #3,LEFT$(PR$,P);:PR$=RIGHT$(PR$,LEN(PR$)-P):GOTO 810
  108. 815 IF LEN(PR$)>220 THEN PRINT #3,PR$;:PR$="":RETURN
  109. 1517 IF IB AND EX=72 THEN B$=CHR$(30):GOTO 535
  110. 1518 IF IB AND EX=71 THEN B$=CHR$(11):GOTO 535
  111. 1519 IF IB AND EX=80 THEN B$=CHR$(31):GOTO 535
  112. 1520 IF EX=35 THEN 1850
  113. 1525 IF EX=75 THEN B$=CHR$(29):GOTO 535
  114. 1526 IF EX=77 THEN B$=CHR$(28):GOTO 535
  115. 1530 IF EX=71 THEN 2000
  116. 1535 IF EX=19 OR EX=81 THEN EX=19:GOTO 3000
  117. 1540 IF EX=47 THEN 3400
  118. 1545 IF EX=20 OR EX=73 THEN EX=20:GOTO 3200
  119. 1550 IF EX=25 THEN 5000
  120. 1555 IF EX=32 THEN 6000
  121. 1560 IF EX=36 OR EX=37 THEN 7000
  122. 1590 IF EX=15 THEN:BEEP:LOCATE 25,1:PRINT"  set Alt-(1-0):  ";CHR$(181);:ALTSET=     -1:GOTO 1000
  123. 1610 IF EX=114 OR EX=132 THEN BEEP:PRINT:IF PR=0 THEN PR=-1:PRINT"===PRINTOUT ON===":CLOSE #3:OPEN PRNTPORT$ AS #3:PRINT #3,PRNTINIT$;:GOTO 515 ELSE PR=0:CLOSE #3:PRINT"===PRINTOUT OFF===":GOSUB 2715:GOTO 515
  124. 1640 IF EX=45 THEN BEEP:CLS:PRINT"===EXIT TO DOS===":PRINT:PRINT"WARNING!  If you proceed you will terminate the program.":PRINT"Do you want to do this (y/n)?";:Q$=INPUT$(1):GOSUB 2555:IF Q$<>"Y" THEN PRINT :PRINT GO$:GOTO 515 ELSE 8915
  125. 1670 IF EX=117 THEN OLDVAL=INP(LCR):BRKVAL=OLDVAL OR 64:OUT LCR,BRKVAL:EVWAIT!=3:GOSUB 40800:EVWAIT!=1:GOSUB 40800:OUT LCR,OLDVAL:GOTO 515
  126. 1682 IF EX=119 THEN 10000
  127. 1684 IF EX=30 THEN 13000
  128. 1685 '
  129. 1692 IF EX=34 THEN GOTO 11100
  130. 1693 IF EX=23 THEN GOTO 11130
  131. 1694 IF EX=22 THEN GOTO 11160
  132. 1696 IF EX=24 THEN GOTO 515
  133. 1699 GOTO 515
  134. 1850 IF NOT EOF(1) THEN Q$=INPUT$(LOC(1),#1):Q$="" ELSE Q$=""
  135. 1855 PLAY "MFL32N46L16N36":EVWAIT!=1:GOSUB 40800:PRINT #1,"+++";:EVWAIT!=30:GOSUB 40800:EVWAIT!=1:GOSUB 40800
  136. 1860 IF LOC(1)>0 THEN Q$=INPUT$(LOC(1),1) ELSE GOTO 1890
  137. 1865 IF INSTR(Q$,"OK")<>0 THEN Q$="":GOTO 1870 ELSE GOTO 1890
  138. 1870 PRINT #1,"ATH0":PLAY "MFL32N42L16N32":EVWAIT!=1:GOSUB 40800:Q1=0
  139. 1875 IF LOC(1)>0 THEN Q$=INPUT$(LOC(1),1)
  140. 1880 IF INSTR(Q$,"OK")<>0 OR INSTR(Q$,"NO CARRIER")<>0 THEN Q$="":GOTO 1895 ELSE GOSUB 1881
  141. 1881 IF Q1=1 THEN PRINT "Failed on the first try . . . Hold on...........I AM retrying . . .":RETURN
  142. 1882 IF Q1=2 THEN PRINT "Failed on the second try . . . . WAIT ONE . . . Let's try it again!":RETURN
  143. 1883 IF Q1=3 THEN PRINT "Failed on the third try . . . . . . . . Let's try it one more time!":RETURN
  144. 1885 Q1=Q1+1:IF Q1<4 AND INSTR(Q$,"NO CARRIER")=0 GOTO 1870
  145. 1890 Q1=Q1+1: IF INSTR(Q$,"NO CARRIER")<>0 GOTO 1895 ELSE IF Q1<4 THEN GOSUB 1881:GOTO 1850 ELSE GOSUB 1900:GOTO 1895
  146. 1895 Q1=0:CLOSE #1:OPEN COMM$ AS #1:PLAY "MFL64N36":EVWAIT!=1:GOSUB 40800:PLAY "MFL64N36":PRINT:PRINT GO$:GOTO 515
  147. 1900 COLOR HI,BG:PRINT "I haven't received HANGUP VERIFICATION after 4 tries":       COLOR FG,BG:PRINT"Check Modem CD lite.  If lit, try ALT-H again."
  148. 1910 CLOSE #1:OPEN COMM$ AS #1:PLAY "MFL64N36":EVWAIT!=1:GOSUB 40800:PLAY "MFL64N36":RETURN
  149. 2015 LOCATE 2,39:PRINT VL$;"  ===PC-TALK III  COMMAND SUMMARY===  ";VL$
  150. 2035 LOCATE 24,39:PRINT CHR$(212)+STRING$(38,205)+CHR$(190);
  151. 2050 DATA" PrtSc Print Screen Contents
  152. 2055 DATA" ^PrtSc Continuous Printout (^PgUp)
  153. 2060 DATA" XMODEM '=x'  Pacing '=p'  Binary '=b'
  154. 2065 DATA" Shft-TAB  Set/Clear Temp Alt Keys
  155. 2070 DATA" Alt-A  3101 Terminal Emulation
  156. 2075 DATA" Alt-C  Clearscreen   Alt-D  Dial Nmbr
  157. 2080 DATA" Alt-E  Echo Toggle   Alt-F  Defaults
  158. 2085 DATA" Alt-G  New Sub Dir   Alt-H  Hang up
  159. 2090 DATA" Alt-I  Set Alt-1/0 from file
  160. 2095 DATA" Alt-K  Set/Clear Func Keys (Alt-J)
  161. 2100 DATA" Alt-L  Change Default Drive
  162. 2105 DATA" Alt-M  Messages     Alt-P  Com Parms
  163. 2110 DATA" Alt-Q  Redial Nmbr  Alt-R  Recv File
  164. 2115 DATA" Alt-S  Screendump   Alt-T  Xmit File
  165. 2120 DATA" Alt-U  Unload Alt-1/0 to file
  166. 2125 DATA" Alt-V  View File    Alt-W  Mrgn Alarm
  167. 2130 DATA" Alt-X  eXit to DOS
  168. 2135 DATA" Alt-Y  Delete a File    Alt-Z  Time
  169. 2140 DATA" ? @ Alt-T -R -V shows Free Disk Space
  170. 2145 DATA"Ctrl-End = Send Sustained Break Signal
  171. 2605 MSG$=LEFT$(MSG$,77):ROW=CSRLIN:COL=POS(0):LOCATE 25,1:COLOR 31,BG:PRINT         CHR$(16);:COLOR BG,FG:PRINT MSG$+SPACE$(77-LEN(MSG$));:COLOR 31,BG:PRINT        CHR$(17);:COLOR FG,BG:LOCATE ROW,COL:RETURN
  172. 2705 CLOSE #2:IF RC THEN OPEN RCV$ FOR APPEND AS #2
  173. 2715 CLOSE #3:IF PR THEN OPEN PRNTPORT$ FOR OUTPUT AS #3
  174. 3010 IF RC THEN RC=0:RC$="":BEEP:PRINT:PRINT"===RECEIPT OF FILE ";RCV$;              " TERMINATED===":GOSUB 3247:PRINT:GOSUB 2700:GOSUB 2800:IF MSG THEN             PRINT #1,BL$;CR$;"===FILE RECEIVED===":GOTO 515 ELSE 515
  175. 3015 BEEP:FIL$=DRIV$:GOSUB 3641:PRINT :PRINT
  176. 3016 RC$="":PRINT"===RECEIVE A FILE===":GOTO 3500
  177. 3020 IF RC$="X" THEN CLOSE #2:KILL RCV$:OPEN RCV$ AS #2 LEN=128:FIELD #2,128 AS X$:GOTO 3030
  178. 3025 IF MSG THEN PRINT #1,BL$;CR$;"===READY TO RECEIVE===
  179. 3030 MSG$=" Receiving "+RCVX$+"  (ALT-R or PgDn to Terminate)":GOSUB 2600
  180. 3210 IF TR THEN TR=0:TR$="":MSG1$="===TRANSMISSION OF FILE ":MSG2$=                  " TERMINATED===":GOSUB 3247:BEEP:PRINT:PRINT MSG1$;TRN$;MSG2$:GOSUB 2715:       GOSUB 2800:IF MSG THEN PRINT #1,CR$;MSG1$;MSG2$,BL$:GOTO 515 ELSE 515
  181. 3215 IF TR THEN TR=0:TR$="":MSG1$="===END OF FILE":MSG2$="===":BEEP:PRINT:           GOSUB 3247:PRINT MSG1$;" ";TRN$;MSG2$:GOSUB 2715:GOSUB 2800:IF MSG THEN         PRINT #1,"65529 '";MSG1$;MSG2$;BL$:GOTO 515 ELSE 515
  182. 3220 TR$="":BEEP:PRINT :PRINT :PRINT:PRINT"===TRANSMIT A FILE===":GOTO 3500
  183. 3225 CLOSE #3:OPEN TRN$ AS #3 LEN=128:FIELD #3,128 AS X$
  184. 3240 IF MSG THEN PRINT #1,CR$;"0 '===START OF FILE===";BL$
  185. 3247 '
  186. 3248 GOSUB 40000:RETURN
  187. 3410 BEEP:PRINT :PRINT :PRINT "`     ?'  and Disk identifier shows Free Disk Space  (example: ?A: or ?E:)"
  188. 3411 PRINT"===VIEW A FILE===":GOTO 3500
  189. 3420 WHILE NOT EOF(3):FOR I=1 TO 20:LINE INPUT #3,X$:J=LEN(X$):IF J<80 THEN PRINT X$ ELSE PRINT X$;:IF J>80 THEN I=I+FIX(J/80)
  190. 3585 IF TR$="B" OR TR$="X" OR RC$="X" THEN IF DTA$<>"8" THEN BEEP:PRINT"*** Automatically converting to 8 DATA BITS for binary or XMODEM ***"
  191. 3595 IF EX=19 THEN CLOSE #2:OPEN FIL$ FOR APPEND AS #2 ELSE CLOSE #3:OPEN FIL$ FOR INPUT AS #3
  192. 3641 AVAIL!=0:DR=0:BYTES!=0
  193. 3642 IF LEFT$(FIL$,2)="A:" OR LEFT$(FIL$,2)="a:" THEN DR=1 ELSE IF LEFT$(FIL$,2)="B:" OR LEFT$(FIL$,2)="b:" THEN DR=2 ELSE IF LEFT$(FIL$,2)="C:" OR LEFT$(FIL$,2)="c:" THEN DR=3
  194. 3643 IF LEFT$(FIL$,2)="D:" OR LEFT$(FIL$,2)="d:" THEN DR=4 ELSE IF LEFT$(FIL$,2)="e:" OR LEFT$(FIL$,2)="E:" THEN DR=5 ELSE IF LEFT$(FIL$,2)="f:" OR LEFT$(FIL$,2)="F:" THEN DR=6
  195. 3644 TOTAL.BYTES!=AVAIL!*BYTES!*SECTORS!
  196. 3645 NAME DRV$+"1" AS DRV$+"1"
  197. 3646 CALL DISKSPAC(DR,AVAIL):TOTAL.BYTES!=(BYTES!+AVAIL)*512
  198. 3647 AVAIL!=AVAIL:DR!=DR:BYTES!=BYTES
  199. 3648 ACUM$=STR$(TOTAL.BYTES!)+" Bytes of free disk space"
  200. 3649 PRINT "Space available on the disk is"+ACUM$
  201. 3650 RETURN
  202. 3810 PLAY "MBL32N33":CLOSE #2:OPEN DUMP$ FOR APPEND AS #2:MSG$=" Appending to "+DUMP$+" at "+TIME$:GOSUB 2600
  203. 3815 FOR I=1 TO 24:Y$="":FOR J=1 TO 79:X=SCREEN(I,J):Y$=Y$+CHR$(X):NEXT J:PRINT #2,Y$:NEXT I:PRINT #2,STRING$(79,45);CR$;LF$;"===PC-TALK SCREENDUMP - ";DATE$;" at ";TIME$;"===";CR$;LF$;STRING$(79,61):CLOSE #2
  204. 3820 '
  205. 3915 PRINT"***The first 5 lines are:":FOR I=1 TO 5:IF NOT EOF(3) THEN LINE INPUT #3,X$:PRINT X$
  206. 3920 NEXT:PRINT"***ARE YOU SURE (y/n)?";:Q$=INPUT$(1):PRINT Q$:GOSUB 2555:IF Q$="Y" THEN CLOSE #3:KILL FIL$:BEEP:PRINT" (deleted)":GOTO 3930
  207. 4035 PRINT #1,Y$;:IF TR$="B" THEN 4050
  208. 4210 I=I+1:CNT!=CNT!+1
  209. 4211 IF I>255 THEN 4230 ELSE Z$=MID$(Y$,I,1)
  210. 4240 PRINT #1,Z$;:IF TR$="P" THEN IF Z$=CR$ THEN PRINT Z$;:GOSUB 4425:GOTO 4210
  211. 4405 FOR I=1 TO LEN(Y$):Z$=MID$(Y$,I,1):IF Z$=LF$ THEN 4415 ELSE IF Z$<>CR$ THEN PRINT #1,Z$;:PRINT Z$;:GOTO 4415 ELSE PRINT #1," "+CR$;:PRINT CR$;:B$="":GOSUB 4420
  212. 4430 IF DEL!>0 THEN EVWAIT!=18*DEL!:GOSUB 40800:EVWAIT!=1:GOSUB 40800:RETURN
  213. 4512 '
  214. 4513 OPAR$=PAR$:ODTA$=DTA$:PAR$="N":DTA$="8":GOSUB 40000:PAR$=OPAR$:DTA$=ODA$
  215. 4515 Y$="":BLK=1:SEC=1:CK=0:ECNT=0:DEDD=0:DEDD=0
  216. 4520 PRINT"***Holding for Start...":GOSUB 4975:PRINT #1,NAK$;
  217. 4585 IF ASC(MID$(Y$,2,1))=SEC-1 THEN PRINT"**Requesting Next Block":PRINT #1,ACK$:GOTO 4520
  218. 4615 PRINT #1,NAK$;:ECNT=ECNT+1:IF ECNT<10 THEN 4625 ELSE IF DEDD<3 THEN EVWAIT!=10:GOSUB 40800:EVWAIT!=1:GOSUB 40800:GOTO 4625 ELSE 4645
  219. 4620 PRINT"Received Block #";BLK;:SEC=255 AND (SEC+1):PUT#2,BLK:BLK=BLK+1:PRINT #1,ACK$;:PRINT"- verified":ECNT=0:DEDD=0
  220. 4635 PRINT "*** End of File - verified":PRINT #1,ACK$;:GOSUB 40000:GOTO 3010
  221. 4640 PRINT "*** Cancelled by Transmitter":GOSUB 40000:GOTO 3010
  222. 4645 PRINT "*** Cancelled by Receiver ":PRINT #1,CAN$;:GOSUB 4975:GOSUB 40000:GOTO 3010
  223. 4712 '
  224. 4713 OPAR$=PAR$:ODTA$=DTA$:PAR$="N":DTA$="8":GOSUB 40000:PAR$=OPAR$:DTA$=ODTA$
  225. 4715 SEC=0:BLK=0:CNT!=0:ECNT=0:DEDD=0:EOT=0:ETT=0:GOSUB 4815
  226. 4760 WHILE NOT EOF(1)
  227. 4761 Z$=INPUT$(LOC(1),#1)
  228. 4765 IF Z$=ACK$ THEN ECNT=0:DEDD=0:PRINT "- verified ":IF NOT EOT THEN 4800 ELSE IF NOT ETT THEN 4845 ELSE 4850
  229. 4770 IF Z$=NAK$ THEN ECNT=ECNT+1:IF ECNT>10 THEN GOSUB 40900:GOTO 4860 ELSE IF NOT EOT THEN 4805 ELSE 4845
  230. 4800 A$=Y$:PRINT"Sending Block #";BLK;:PRINT #1,A$;:IF CNT!<FLN! THEN GOSUB 4815:GOTO 4755 ELSE EOT=-1:GOTO 4755
  231. 4805 ECNT=ECNT+1:IF ECNT>10 THEN GOSUB 40950:GOTO 4860 ELSE PRINT:PRINT"***Re-sending block...";:PRINT #1,A$;:GOTO 4755
  232. 4845 PRINT #1,EOT$;:PRINT"***Sending End Marker ";:ETT =-1:GOTO 4755
  233. 4855 PRINT:PRINT"***Cancelled by Receiver":CLOSE #3:GOTO 3210
  234. 4860 PRINT:PRINT"***Cancelled by Transmitter":CLOSE #3:PRINT #1,CAN$;:GOTO 3210
  235. 4910 IF NOT EOF(1) THEN Z$=INPUT$(LOC(1),#1):RETURN ELSE EVWAIT!=1:GOSUB 40800:ZA=ZA+1
  236. 4950 GOSUB 4975:PRINT #1,NAK$;
  237. 5026 PRINT"   5 -  450,E,7,1  (text)      6 -  450,N,8,1  (binary)
  238. 5055 IF Q$="F" THEN PRINT Q$:GOSUB 5815:PRINT:PRINT"Parameters reset to:";:DORN=0:GOSUB 5100:GOTO 5095
  239. 5060 DORN=0:Q=VAL(Q$):IF Q<1 OR Q>6 THEN BEEP:GOTO 5045 ELSE PRINT Q
  240. 5070 IF Q=2 THEN PAR$="N":DTA$="8"
  241. 5080 IF Q=4 THEN BAU$="1200":PAR$="N":DTA$="8"
  242. 5081 IF Q=6 THEN PAR$="N":DTA$="8"
  243. 5085 LOCATE ,,1:COMM$=COMMPORT$+BAU$+","+PAR$+","+DTA$+","+STP$+COMMINIT$:CLOSE #1:OPEN COMM$ AS #1
  244. 5086 IF Q=5 OR Q=6 THEN GOSUB 11000
  245. 5095 IF MDFLG THEN RETURN ELSE PRINT GO$:GOSUB 2800:GOTO 515
  246. 5100 COLOR BG,FG:IF DORN=1 THEN 5101 ELSE PRINT MID$(COMM$,6,10);:COLOR FG,BG:PRINT:PRINT:GOTO 5105
  247. 5101 PRINT "450,"+PAR$+","+DTA$+","+STP$;:COLOR FG,BG:PRINT:PRINT
  248. 5230 NEXT:LOCATE ,,1:IF EXIT THEN 5280 ELSE FOR I=1 TO DFNUM:DT$(I)=D$(I):NEXT
  249. 5231 '
  250. 5260 GOSUB 2500:IF Q$=CHR$(27) THEN GOSUB 2655:GOSUB 2655:ABORT=-1 ELSE IF           Q$<>"" THEN DT$(I)=Q$:IF DT$(I)=" " THEN DT$(I)=""
  251. 5270 GOSUB 5295:PRINT"*** New values ok (y/n)?";:Q$=INPUT$(1):PRINT Q$:GOSUB         2555:IF Q$="N" THEN GOSUB 5295:LOCATE 21,1:PRINT SPACE$(79);:LOCATE 21,1:       PRINT"(Default Routine Cancelled)":GOTO 5290 ELSE FOR I=1 TO DFNUM:D$(I)=   DT$(I):NEXT
  252. 5271 '
  253. 5280 GOSUB 5815:CLOSE #1:OPEN COMM$ AS #1
  254. 5405 RESTORE 5410:FOR I=1 TO DFNUM:READ DP$(I),D$(I):NEXT:GOSUB 5440:GOTO 311
  255. 5415  DATA"STRIP #1",0,REPLACE #1,0,"STRIP #2",0,REPLACE #2,0,"STRIP #3",0,REPLACE #3,0,PACING P=,,LOGGED DRIVE,"A:",MARGIN WIDTH,70
  256. 5420 DATA SCREENDUMP FILE,"A:SCRNDUMP.PCT",REDIAL DELAY,20,CONNECT PROMPT,CONNECT
  257. 5440 CLOSE #1:OPEN FFIL$ FOR OUTPUT AS #1:WRITE#1,IFIL$:FOR I=1 TO DFNUM:WRITE#1,DP$(I),D$(I):NEXT:WRITE#1,IFIL$:GOSUB 5600:RETURN
  258. 5815 COMM$=DCOMM$
  259. 5820 ECH=DECH:MSG=DMSG:NS=DNS:FOR J=1 TO 3:I=2*J+5:S$(J)=DS$(J):R$(J)=DR$(J):        NEXT:PC$=DPC$:RETURN
  260. 6010 BEEP:CLOSE #2:OPEN DFIL$ AS #2:IF DPAGE=0 THEN DPAGE=1
  261. 6035 CLS:LOCATE 1,53,0:PRINT"===DIALING DIRECTORY "DPAGE"===
  262. 6040 GET#2,2:MODM$=RIGHT$(R$,CVI(X$)):LOCATE 1,1:PRINT"Modem dialing command = "MODM$
  263. 6045 GET#2,3:SERV1$=RIGHT$(R$,CVI(X$)):LOCATE 2,1:PRINT"Long distance service +# = "LEFT$(SERV1$,24):LOCATE 2,52:PRINT "| +Append: ";APPEND1$
  264. 6050 GET#2,4:SERV2$=RIGHT$(R$,CVI(X$)):LOCATE 3,23:PRINT"-# = "LEFT$(SERV2$,24):LOCATE 3,52:PRINT"| -Append: ";APPEND2$
  265. 6145 IF Q$="X" THEN CLOSE #2:GOSUB 2700:CLS:LOCATE 1,1,1:PRINT GO$:GOSUB 2800:GOTO 515
  266. 6150 IF Q$="M" THEN CLOSE #2:GOSUB 2700:CLS:LOCATE 1,1,1:GOSUB 6305:GOSUB 2800:GOTO 515
  267. 6215 CLOSE #1:OPEN COMM$ AS #1
  268. 6257 FOR X=1 TO LEN(N$):IF MID$(N$,X,1)<>" " THEN LECOUNT=X
  269. 6258 NEXT X:LECOUNT=LECOUNT+1
  270. 6260 CLS:LOCATE 1,1,1:PRINT"===DIALING ";LEFT$(N$,LECOUNT);" -  ";
  271. 6266 FOR X=1 TO LEN(DIAL$):IF (MID$(DIAL$,X,1)>="0" AND MID$(DIAL$,X,1)<="9") THEN TEMP$=TEMP$+MID$(DIAL$,X,1)
  272. 6267 NEXT X:SWAP DIAL$,TEMP$
  273. 6268 IF (SERV1 OR SERV2) AND LEFT$(DIAL$,1)="1" AND LEN(DIAL$)>10 THEN DIAL$=RIGHT$(DIAL$,LEN(DIAL$)-1)
  274. 6270 IF SERV1 THEN DIAL$=SERV1$+DIAL$+APPEND1$
  275. 6275 IF SERV2 THEN DIAL$=SERV2$+DIAL$+APPEND2$
  276. 6280 PRINT TEMP$:TEMP$="":PRINT:PRINT #1, MODM$+DIAL$:STRT$=TIME$
  277. 6285 CLOSE #2:GOSUB 2700:GOSUB 2800:GOTO 515
  278. 6305 MDFLG=0:LOCATE 7,1:PRINT"Current Comm Parameters are: ";COMM$:PRINT: PRINT      "Options: 1) Use Current  2) Use Default  3) Change (1/2/3 cr=Current) ";
  279. 6306 B$=INKEY$:IF B$="" GOTO 6306 ELSE IF VAL(B$)<>1 AND VAL(B$)<>2 AND              VAL(B$)<>3 AND B$<>CHR$(13) THEN BEEP:GOTO 6306 ELSE PRINT B$
  280. 6307 IF VAL(B$)=1 OR B$=CHR$(13) THEN GOSUB 5820:MCOM$=COMM$:GOTO 6308 ELSE IF       VAL(B$)=2 THEN GOSUB 5820:MCOM$=DCOMM$:GOTO 6308 ELSE MDFLG=-1:GOSUB 5010:      MDFLG=0:MCOM$=COMM$:GOSUB 5820
  281. 6308 PRINT:PRINT"===DIAL PHONE # w/o Dial Command: (cr=Cancel) ";:QL=36:             GOSUB 2500:R$=Q$:N$="
  282. 6320 IF LEFT$(R$,1)="-" THEN DIAL$=SERV2$+RIGHT$(R$,LEN(R$)-1)
  283. 6325 CLOSE #1:OPEN MCOM$ AS #1:PRINT #1,MODM$+DIAL$:STRT$=TIME$:PRINT:LOCATE,,1:       RETURN
  284. 6835 GOSUB 6900:MSG$="Long distance +#:":MSG1$="Long distance append +#:":GOSUB 6845:PUT #2,3:GOSUB 6841:APPEND1$=Q$:GOSUB 6842:GOTO 6030
  285. 6840 GOSUB 6900:MSG$="Long distance -#:":MSG1$="Long distance append -#:":GOSUB 6845:PUT#2,4:GOSUB 6841:APPEND2$=Q$:GOSUB 6842:GOTO 6030
  286. 6841 LOCATE 21,1:PRINT MSG1$;SPACE$(79-LEN(MSG1$));:LOCATE 21,LEN(MSG1$)+2:QL=15:GOSUB 2500:RETURN
  287. 6842 CLOSE #3:OPEN "LDAPPEND.DAT" FOR OUTPUT AS #3:PRINT #3,APPEND1$:PRINT #3,APPEND2$:CLOSE #3:RETURN
  288. 7010 BEEP:IF KPG=0 THEN KPG=1
  289. 7130 IF Q$="X" THEN CLOSE #2:GOSUB 2700:GOSUB 7435:LOCATE 16,40:PRINT GO$;:LOCATE ROW,COL:GOTO 515
  290. 7205 GOSUB 7435:CLOSE #2:OPEN KFIL$ AS #2:FIELD #2, 126 AS K$,2 AS L$
  291. 7230 GOSUB 2555:IF Q$="X" THEN CLOSE #2:GOSUB 2700:GOSUB 7440:LOCATE 16,40:PRINT GO$;:LOCATE ROW,COL:GOTO 515
  292. 8010 COMA=0:Q1DELAY=QDELAY 'COMA--To recognize pauses if used in DIAL$
  293. 8015 FOR I=1 TO LEN(DIAL$):IF MID$(DIAL$,I,1)="," THEN COMA=COMA+38
  294. 8020 NEXT:IX=0:CLS:V$=TIME$:LOCATE 20,4,0:PRINT"To change disconnect delay time press ";:COLOR HI,BG:PRINT"]";:COLOR FG,BG:PRINT" after '**  DIALING:' appears above.";:LOCATE 1,1
  295. 8025 MSG$="  Redialing...  *** HIT R TO RECYCLE. HIT SPACE BAR TO TERMINATE ***"     :GOSUB 2600:LOCATE 2,54:PRINT"Redial Started at: ";:COLOR HI,BG:PRINT V$;:      COLOR FG,BG:LOCATE 1,1
  296. 8030 Q1$="":Q$="":PRINT"  ===REDIALING ";N$;:LOCATE 1,45:PRINT                       "Time at Start of This Pass: ";:COLOR HI,BG:PRINT TIME$:COLOR FG,BG:            LOCATE 2,1:PRINT #1,MODM$+DIAL$:ROW=CSRLIN:COL=POS(0)
  297. 8035 EVWAIT!=(12000/VAL(BAU$))+COMA+1:I=0:IX=IX+1:AFLG=0
  298. 8040 WHILE I<>Q1DELAY
  299. 8045  LOCATE 22,4:PRINT"THIS IS TRY #: ";IX;"  ELAPSED TIME THIS PASS ";I;
  300. 8050  B1$=INKEY$:IF B1$="R" OR B1$="r" GOTO 8115
  301. 8055  IF B1$="]" GOTO 8165
  302. 8060  '
  303. 8065  IF B1$=" " GOTO 8155
  304. 8070  IF LOC(1)>0 THEN Q$=INPUT$(LOC(1),1):Q1$=Q1$+Q$ ELSE 8080 'See Ln 9055
  305. 8075  IF INSTR(Q1$,MODM$+DIAL$)<>0 AND AFLG=0 THEN LOCATE ROW,COL:PRINT            "  ** DIALING: ";MODM$+DIAL$:PRINT"  ** COM PARAMS: ";MID$(COMM$,6,10):         PRINT"  ** DISCONNECT DELAY PERIOD IS: "Q1DELAY:AFLG=1:ROW=CSRLIN:COL=POS(0)
  306. 8080  I=I+1
  307. 8085  IF INSTR(Q1$,CONNECT$)<>0 GOTO 8130
  308. 8090  IF INSTR(Q1$,"BUSY")<>0 OR INSTR(Q1$,"NO CARRIER")<>0 GOTO 8125
  309. 8095  EVWAIT!=19.5:GOSUB 40800
  310. 8100 WEND
  311. 8105 '  -- Delay Time has Expired
  312. 8110 LOCATE ROW,COL:COLOR HI,BG:PRINT"  ** DELAY PERIOD EXPIRED **";:COLOR 7,BG
  313. 8115 PRINT #1,"A":EVWAIT!=30:GOSUB 40800:EVWAIT!=1:GOSUB 40800:GOSUB 8180:CLOSE #1:OPEN COMM$ AS #1:         GOTO 8025
  314. 8120 '  -- Busy or No Carrier
  315. 8125 LOCATE ROW,COL:COLOR HI,BG:PRINT"  *** LINE BUSY OR NO CARRIER ***":COLOR FG,BG:EVWAIT!=27:GOSUB 40800:GOSUB 8180:GOTO 8025
  316. 8130 '  -- Connected
  317. 8135 STRT$=TIME$:MSG$=" REMOTE COMPUTER ON LINE *** HIT ANY KEY TO PROCEED ***"      :GOSUB 2600
  318. 8140 LOCATE 12,15:COLOR 31,BG:PRINT"  <<<  CONNECTED WITH "N$"  >>>":                COLOR FG,BG:LOCATE ,,1
  319. 8145 IF INKEY$="" THEN PLAY "MBMSL64N39N46":GOTO 8145 ELSE CLS:GOSUB 2800:GOTO 515
  320. 8150 '  -- Redial Terminate
  321. 8155 PRINT #1,"A";:PLAY "MFL64N42":EVWAIT!=1:GOSUB 40800
  322. 8160 CLS:BEEP:PRINT"===REDIAL TERMINATED...Back in Terminal Mode ===":PRINT GO$:     GOSUB 2800:GOTO 515
  323. 8165 LOCATE 13,1:INPUT"GIVE NEW DELAY IN SECONDS (10 sec. minimum  cr=default)";     Q1DELAY
  324. 8170 IF Q1DELAY=0 THEN Q1DELAY=QDELAY ELSE IF Q1DELAY<10 THEN Q1DELAY=10
  325. 8175 LOCATE 13,1:PRINT SPACE$(78);:GOTO 8070
  326. 8180 LOCATE 2,1:FOR I=1 TO 4:PRINT SPACE$(40):NEXT:LOCATE 1,1:RETURN
  327. 8915 PRINT:PRINT:PRINT:PRINT STRING$(32,32);"Have a good day!":PRINT:PRINT:PRINT"(returning to DOS)":PLAY "MBL32N36N32L16N36":END
  328. 8920 '
  329. 9002 IF ERL=3645 AND ERR=31 THEN PRINT "DISK  *NOT*  READY!":RESUME 3650
  330. 9003 IF ERL=3645 THEN RESUME 3646
  331. 9005 IF ERL=170 THEN CLOSE #1:OPEN "LDAPPEND.DAT" FOR OUTPUT AS #1:PRINT #1,"  ":PRINT #1,"  ":CLOSE #1:RESUME 170
  332. 9015 IF ERL=225 THEN RESUME 245
  333. 9035 IF ERL=5280 THEN BEEP:GOSUB 5295:PRINT TAB(31);"***  Invalid communication parameter.  Try again.";:EXIT=0:RESUME 5215
  334. 9050 IF ERR=24 THEN MSG$="TIMEOUT":GOSUB 8925:IF PR THEN PR=0:MSG$="PRINTOUT OFF":GOSUB 8925:PR=O:CLOSE #3:RESUME 820 ELSE MSG$="CHECK MODEM":GOSUB 8925:RESUME 515
  335. 9060 IF ERR=69 THEN PRINT #1,XF$;:PSE=-1:MSG$="OVERFLOW":GOSUB 8925:IF NOT PR THEN RESUME 515 ELSE MSG$="PRINTOUT OFF":PR=0:CLOSE #3:RESUME 515
  336. 9065 IF ERR=15 AND ERL=660 THEN MSG$="OVERFLOW--PRINTOUT OFF":GOSUB 8925:PR=0:CLOSE #3:RESUME 515
  337. 9100 IF ERR=67 OR ERR=70 OR ERR=71 THEN BEEP:PRINT"*** Can't read/write file in the default drive.":PRINT"Correct and hit any key to resume..":Q$=INPUT$(1):IF ERL<400 THEN RESUME 215 ELSE CLS:RESUME 405
  338. 9120 IF ERR=53 AND ERL=11137 THEN BEEP:PRINT "===File NOT FOUND===":                 RESUME 11130
  339. 9125 IF ERR=53 AND ERL=11167 THEN BEEP:PRINT "===File NOT FOUND===":                 RESUME 11160 
  340. 9130 IF ERL=810 THEN MSG$="Please check your printer, then press any key. ":GOSUB 2600:TEMP$=INPUT$(1):GOSUB 2825:RESUME 810
  341. 9200 '************* MUSIC ERRORS *************05-04-84
  342. 9210 IF ERR=5 AND ERL=12420 THEN GOTO  9212 ELSE 9220
  343. 9212 GOSUB 4970:Z$="":C$="":RESUME 637
  344. 9220 IF ERR=15 AND ERL=645 THEN 9222 ELSE 9290
  345. 9222 GOSUB 4970:Z$="":C$="":RESUME 637
  346. 9232 GOSUB 4970:Z$="":C$="":A$="":GOTO 637
  347. 9240 '
  348. 9242 GOSUB 4970:Z$="":C$="":A$=RRL$:GOTO 637
  349. 9290 '
  350. 9900 IF ERR=5 THEN RESUME 615
  351. 9999 DATA "Compatibility changes by:  Dorn W. Stickle, 6/84.   Higher level then 840517"
  352. 10000 IF SP THEN SP=0:TMP$="":LOCATE ROW,COL,1:PRINT:PRINT ELSE 10010 
  353. 10001 PRINT"===Split Screen Operation Off":BEEP:PRINT:ROW=CSRLIN:COL=POS(0) 
  354. 10002 LOCATE 25,1,0:PRINT CLIN$:LOCATE ROW,COL,1:GOTO 515 
  355. 10010 SP=-1:BEEP:PRINT:PRINT"===Split Screen Operation On":ROW=CSRLIN 
  356. 10012 COL=POS(0):LOCATE 25,1,1:GOTO 515 
  357. 11000 OUT &H3FB,(INP(&H3FB) OR &H80):OUT &H3F8,0:OUT &H3F9,1:OUT &H3FB,(INP(&H3FB) AND &H7F):DORN=1:RETURN
  358. 11010 IF B$=CR$ THEN B$=TMP$+B$:TMP$="":LOCATE 25,1,0:PRINT CLIN$;:GOTO 558 
  359. 11020 IF B$=CHR$(27) THEN TMP$="":LOCATE 25,1,0:PRINT CLIN$;:XPOS=1 ELSE 11040 
  360. 11022 LOCATE 25,XPOS,1:GOTO 560 
  361. 11030 LOCATE 25,XPOS,1:GOTO 560 
  362. 11032 XPOS=XPOS-1:GOSUB 2655:LOCATE 25,XPOS,1:GOTO 560 
  363. 11040 IF B$=BS$ AND XPOS>1 THEN TMP$=LEFT$(TMP$,LEN(TMP$)-1) ELSE 11060 
  364. 11050 XPOS=XPOS-1:GOSUB 2655:LOCATE 25,XPOS,1:GOTO 560 
  365. 11055 IF XPOS>79 THEN XPOS=1
  366. 11060 IF B$=BS$ AND XPOS=1 THEN 560 
  367. 11070 LOCATE 25,XPOS,1:PRINT B$;:TMP$=TMP$+B$:XPOS=XPOS+1
  368. 11080 IF XPOS>79 THEN XPOS=1
  369. 11090 GOTO 560 ' End of PC3SC.MRG.
  370. 11100 BEEP:PRINT "=== SPECIFY DIRECTORY ==="
  371. 11101 GOTO 11182
  372. 11102 GOSUB 11180
  373. 11112 QL=63:PRINT "New  Directory  Name:"; 
  374. 11114 GOSUB 2500:PRINT:IF Q$="" THEN GOTO 11124
  375. 11116 IF LEFT$(Q$,1)<>"\" THEN PRINT "Directory Name must begin with \":              GOTO 11112
  376. 11118 NEWDIR$=DRIV$+Q$+CHR$(0):RETCD%=0 :CALL CHDIR(NEWDIR$,RETCD%)
  377. 11120 IF RETCD%=0 THEN CURDIR$=NEWDIR$:NEWDIR$="":GOSUB 11180:GOTO 515
  378. 11122 IF RETCD%=3 THEN BEEP:PRINT "PATH/DIRECTORY NOT FOUND":GOTO 11124
  379. 11123 PRINT "Invalid Return Code from CHDIR = ";RETCD%:GOTO 11124
  380. 11124 BEEP:PRINT "===CANCELLED===":GOTO 515
  381. 11130 IF RC OR TR THEN BEEP:PRINT "ALT-1/0 KEYS CANNOT BE LOADED DURING FILE OPERATIONS": GOTO 11124
  382. 11132 BEEP:PRINT "SPECIFY FILENAME TO LOAD FROM === : "
  383. 11134 GOSUB 2500:PRINT:IF Q$="" THEN GOTO 11124
  384. 11136 ALTFILE$=Q$:CLS
  385. 11137 CLOSE #3:OPEN ALTFILE$ FOR INPUT AS #3
  386. 11138 FOR IA=1 TO 10:
  387. 11140 INPUT #3,ALTSTR$:PRINT "Alt-";IA;" = ";ALTSTR$
  388. 11142 IAX = INSTR(ALTSTR$,XCR$): IF IAX = 0 THEN 11143 ELSE MID$(ALTSTR$,IAX,1)       = CHR$(13): GOTO 11142
  389. 11143 IF LEN(ALTSTR$)>50 THEN ALT$(IA)=LEFT$(ALTSTR$,50) ELSE ALT$(IA) =ALTSTR$
  390. 11144 NEXT
  391. 11145 CLOSE #3
  392. 11146 BEEP:PRINT "Alt-1 THRU Alt-0 LOADED FROM:";ALTFILE$:GOTO 515
  393. 11160 IF RC OR TR THEN BEEP:PRINT "ALT-1/0 KEYS CANNOT BE SAVED  DURING FILE OPERATIONS": GOTO 11124
  394. 11162 BEEP:PRINT "SPECIFY FILENAME TO SAVE INTO === : "
  395. 11164 GOSUB 2500:PRINT:IF Q$="" THEN GOTO 11124
  396. 11166 ALTFILE$=Q$:CLS
  397. 11167 CLOSE #3:OPEN ALTFILE$ FOR OUTPUT AS #3
  398. 11168 FOR IA=1 TO 10:
  399. 11170 ALTSTR$ = ALT$(IA)
  400. 11172 IAX = INSTR(ALTSTR$,CR$): IF IAX = 0 THEN 11173 ELSE MID$(ALTSTR$,IAX,1)        = XCR$: GOTO 11172
  401. 11173 PRINT "Alt-";IA;" = ";ALTSTR$:
  402. 11175 PRINT #3,CHR$(34);ALTSTR$;CHR$(34)
  403. 11176 NEXT
  404. 11177 CLOSE #3
  405. 11178 BEEP:PRINT "Alt-1 THRU Alt-0 SAVED INTO:";ALTFILE$:GOTO 515
  406. 11179 '  -- Service Subroutines for SUBDIRECTORY SUPPORT -- John Chapmen
  407. 11180 IF CURDIR$<>"" THEN PRINT:PRINT"Current Directory is: [";DRIV$;"]";             MID$(CURDIR$,INSTR(CURDIR$,"\"))
  408. 11181 RETURN
  409. 11182 CURDIR$="":NEWDIR$="                                "
  410. 11183 NEWDIR$=   NEWDIR$+"                                "+CHR$(0)
  411. 11184 '     If driv$="" or driv$=" " then driv$="@"
  412. 11185 CALL GETDIR(NEWDIR$,DRIV$,RETCD%)
  413. 11186 IF RETCD%<>0 THEN PRINT "Return Code from GETDIR = ";RETCD%: GOTO 11188
  414. 11187 IA=INSTR(NEWDIR$,CHR$(0)):CURDIR$="\"+LEFT$(NEWDIR$,IA-1)
  415. 11188 GOTO 11102
  416. 11999 GOTO 515 ' FAILSAFE EXIT
  417. 12000 '************* ESC CONTROL **************
  418. 12010 CLEN=LEN(C$)
  419. 12020 CEND$=MID$(C$,CLEN,1)
  420. 12025 IF CLEN<>2 THEN 12030
  421. 12027 IF ASC(CEND$)<>91 THEN RETURN 'INVALID ESC SEQ
  422. 12030 ON FF GOTO 12300,12070,12070,12400,12500,12600,12700,9240
  423. 12050 RETURN
  424. 12060 '************* COLOR CONTROL ************
  425. 12070 FOR J=1 TO INT(CLEN/3):Z = VAL(MID$(C$,(3*J),2))
  426. 12080 IF Z = 30 THEN FG = 0: GOTO 12290 'BLACK
  427. 12090 IF Z = 31 THEN FG = 4: GOTO 12290 'RED
  428. 12100 IF Z = 32 THEN FG = 2: GOTO 12290 'GREEN
  429. 12110 IF Z = 33 THEN FG = 6: GOTO 12290 'BROWN 
  430. 12120 IF Z = 34 THEN FG = 1: GOTO 12290 'BLUE
  431. 12130 IF Z = 35 THEN FG = 5: GOTO 12290 'MAGENTA
  432. 12140 IF Z = 36 THEN FG = 3: GOTO 12290 'CYAN
  433. 12150 IF Z = 37 THEN FG = 7: GOTO 12290 'WHITE
  434. 12160 IF Z = 40 THEN BG = 0: GOTO 12290 'BLACK
  435. 12170 IF Z = 41 THEN BG = 4: GOTO 12290 'RED
  436. 12180 IF Z = 42 THEN BG = 2: GOTO 12290 'GREEN
  437. 12190 IF Z = 43 THEN BG = 6: GOTO 12290 'BROWN 
  438. 12200 IF Z = 44 THEN BG = 1: GOTO 12290 'BLUE
  439. 12210 IF Z = 45 THEN BG = 5: GOTO 12290 'MAGENTA
  440. 12220 IF Z = 46 THEN BG = 3: GOTO 12290 'CYAN
  441. 12230 IF Z = 47 THEN BG = 7: GOTO 12290 'WHITE
  442. 12240 IF Z = 0  THEN BG = BGI: FG = FGI:IFLAG = 0:BFLAG=0: GOTO 12290
  443. 12250 IF Z = 2  THEN CLS   : LOCATE 1,1:GOTO 12290 'CLEAR
  444. 12260 IF Z = 1  THEN IFLAG = 8:GOTO 12290 'INTENSITY HIGH
  445. 12270 IF Z = 5  THEN BFLAG = 16:GOTO 12290 'BLINK
  446. 12280 '
  447. 12290 NEXT J:FFG=FG+IFLAG+BFLAG:COLOR FFG,BG:RETURN
  448. 12300 '*********** CURSOR POSITION ************
  449. 12310 '
  450. 12320 PROW=VAL(MID$(C$,CLEN-5,2))
  451. 12330 PCOL=VAL(MID$(C$,CLEN-2,2))
  452. 12340 LOCATE PROW,PCOL
  453. 12350 RETURN
  454. 12400 '***********  MUSIC  CONTROL ************
  455. 12410 '
  456. 12420 PLAY MID$(C$,3,(CLEN-3))
  457. 12430 RETURN
  458. 12500 '*********** SCREEN  CONTROL ************
  459. 12510 '
  460. 12520 MODE=VAL(MID$(C$,CLEN-11,2))
  461. 12530 BURST=VAL(MID$(C$,CLEN-8,2))
  462. 12540 APAGE=VAL(MID$(C$,CLEN-5,2))
  463. 12550 VPAGE=VAL(MID$(C$,CLEN-2,2))
  464. 12560 SCREEN MODE,BURST,APAGE,VPAGE
  465. 12570 RETURN
  466. 12600 '*********** STRING   INPUT  ************
  467. 12610 '
  468. 12620 INPUT I$:PRINT #1,I$
  469. 12630 RETURN
  470. 12700 '****** ESCAPE SEQUENCE VERIFY ******
  471. 12710 '
  472. 12720 RETURN 655
  473. 13000 IF IB THEN IB=0:PRINT"===I.B.M. 3101 Operation Off":BEEP:GOTO 515
  474. 13015 IB=-1:BEEP:PRINT"===I.B.M. 3101 Operation On":GOTO 515
  475. 13030 FOR I = 1 TO LEN(A$):C$=MID$(A$,I,1)
  476. 13035 ON ESCSEQ GOTO 13145,13170,13180
  477. 13040 IF C$<" " THEN 13070
  478. 13045 PRINT C$;:COL=COL+1:IF COL>80 THEN COL=1:ROW=ROW+1:IF ROW>24 THEN ROW=24
  479. 13050 GOTO 13355
  480. 13055 '
  481. 13060 ' 3101 Control character encountered
  482. 13065 '
  483. 13070 C=ASC(C$)
  484. 13075 IF C=13 THEN COL=1:GOTO 13350
  485. 13080 IF C=30 AND ROW>1 THEN ROW=ROW-1:GOTO 13350
  486. 13085 IF C=22 THEN C=10:C$=CHR$(C)
  487. 13090 IF C=10 AND ROW<24 THEN ROW=ROW+1:GOTO 13350
  488. 13095 IF C=10 THEN PRINT C$;:GOTO 13355
  489. 13100 IF C=8  AND COL>1 THEN COL=COL-1:GOTO 13350
  490. 13105 IF C=28 AND COL<80 THEN COL=COL+1:GOTO 13350
  491. 13110 IF C=30 THEN ROW=1:COL=1:GOTO 13350
  492. 13115 IF C=12 THEN ROW=1:COL=1:CLS:GOTO 13350
  493. 13120 IF C<>27 THEN 13355
  494. 13125 '
  495. 13130 ' ESC sequence; read next character and come back
  496. 13135 '
  497. 13140 ESCSEQ=1:GOTO 13355
  498. 13145 ESCSEQ=0:IF C$<>"Y" THEN 13205
  499. 13150 '
  500. 13155 ' Repositioning cursor; now get row and column bytes
  501. 13160 '
  502. 13165 ESCSEQ=2:GOTO 13355
  503. 13170 ROW=ASC(C$)-31:IF ROW<1 OR ROW>24 THEN ROW=1
  504. 13175 ESCSEQ=3:GOTO 13355
  505. 13180 COL=ASC(C$)-31:IF COL<1 OR COL>80 THEN COL=1
  506. 13185 ESCSEQ=0:GOTO 13350
  507. 13190 '
  508. 13195 ' Handle cursor up
  509. 13200 '
  510. 13205 IF C$<>"A" THEN 13235
  511. 13210 IF ROW >1 THEN ROW=ROW-1
  512. 13215 GOTO 13350
  513. 13220 '
  514. 13225 ' Handle cursor down
  515. 13230 '
  516. 13235 IF C$<>"B" THEN 13270
  517. 13240 IF ROW <24 THEN ROW=ROW+1
  518. 13245 GOTO 13350
  519. 13250 '
  520. 13255 ' Handle cursor right
  521. 13260 '
  522. 13265 '
  523. 13270 IF C$<>"C" THEN 13300
  524. 13275 COL=COL+1:IF COL >80 THEN COL=1:IF ROW > 23 THEN ROW=24 ELSE ROW=ROW+1
  525. 13280 GOTO 13350
  526. 13285 '
  527. 13290 ' Handle cursor left
  528. 13295 '
  529. 13300 IF C$<>"D" THEN 13330
  530. 13305 COL=COL-1:IF COL <1 THEN COL=80:IF ROW > 1 THEN ROW=ROW-1 ELSE ROW=1
  531. 13310 GOTO 13350
  532. 13315 '
  533. 13320 ' Handle erase to end of page
  534. 13325 '
  535. 13330 IF C$<>"J" THEN 13355
  536. 13335 IF ROW<24 THEN PRINT SPACE$(81-COL);
  537. 13340 IF ROW<23 THEN FOR TROW=ROW+1 TO 23:PRINT SPACE$(80);:NEXT TROW
  538. 13345 IF ROW<24 THEN PRINT SPACE$(79); ELSE PRINT SPACE$(80-COL);
  539. 13350 LOCATE ROW,COL,1
  540. 13355 NEXT
  541. 13360 GOTO 515
  542. 40000 'Reset parity and Number of Data Bits on the Fly ********
  543. 40100 IF PAR$="N" AND DTA$="7" THEN NEWPD=2
  544. 40200 IF PAR$="E" AND DTA$="7" THEN NEWPD=26
  545. 40300 IF PAR$="O" AND DTA$="7" THEN NEWPD=10
  546. 40400 IF PAR$="M" AND DTA$="7" THEN NEWPD=42
  547. 40500 IF DTA$="8" THEN NEWPD=3
  548. 40600 OUT LCR,NEWPD
  549. 40700 RETURN
  550. 40800 DEF SEG=0
  551. 40810 JONES!=PEEK(&H46C)+256*PEEK(&H46D)
  552. 40820 STICKLE!=PEEK(&H46C)+256*PEEK(&H46D)
  553. 40830 IF STICKLE!<JONES! THEN STICKLE!=STICKLE!+65536!
  554. 40840 IF STICKLE!<(JONES!+EVWAIT!) THEN 40820
  555. 40845 ECNT=0
  556. 40850 RETURN
  557. 40900 IF DEDD<3 THEN EVWAIT!=10:GOSUB 40800:EVWAIT!=1:GOSUB 40800:DEDD=DEDD+1:GOTO 40910 ELSE RETURN
  558. 40910 IF NOT EOT THEN RETURN 4805 ELSE RETURN 4845
  559. 40950 IF DEDD<3 THEN EVWAIT!=10:GOSUB 40800:EVWAIT!=1:GOSUB 40800:DEDD=DEDD+1:GOTO 40960 ELSE RETURN
  560. 40960 PRINT:PRINT"***Re-sending block...";:PRINT #1,A$;:RETURN 4755
  561. 65000 PRINT "This Program (I think that it is becoming an institution), was orignally        written by Andrew Fleugelmen.  I think that I was the first to modify it
  562. 65020 PRINT "with my 450 baud merge.  I thought that the program was great, but then         came along the fellows with the real brains and have turned this program
  563. 65030 PRINT "into something that is FANTASTIC.  It is to these people that we all owe        our thanks to.":PRINT
  564. 65040 PRINT "                   Wes Meier      Ctrl-Home Split Screen                                           Jim Gainsley    Alt-H   Hang-Up Modem                                                           Alt-Q   Redail
  565. 65050 PRINT "                   John Chapman    Alt-G   Get New Directory                                                       Alt-I   Load Keys 1-0 from file                                                 Alt-U   Save Keys 1-0 to file
  566. 65060 PRINT "                   Jack Wright     Alt-V   Original Show Free Space                                Leroy Casterline        PCFixLC1 & 2 appends account numbers                                            to phone numbers for Sprint & MCI
  567. 65070 PRINT "                   Kent Galbraith  Alt-A   3101 Emulation":PRINT
  568. 65080 PRINT "I modified many of these, but the original authors are the ones that deserve    the credit for their work. I made the jigsaw puzzle fit together and debugged   many of the merges as well as making the Free space show on View, Transmit, or
  569. 65090 PRINT "Receive a file.":FOR I=1 TO 15500:NEXT I:CLS
  570. 65100 LOCATE 3,1:PRINT "Andrew Fluegelman has developed one of the best communications programs that    is available for the PC, we need to continue to support the concept that he has started with the        FREEWARE CONCEPT"
  571. 65110 PRINT
  572. 65130 COLOR 1,0:PRINT "We can continue to make it and keep it the BEST communications program there is.":COLOR 0,1
  573. 65140 PRINT :PRINT :PRINT STRING$(32,32);"Have a good day!":PRINT :PRINT STRING$(40,32);"Dorn W. Stickle............"
  574. 65150 RETURN
  575.